﻿using System;
using System.Collections.Generic;
using System.Text;
using OpenComposite.HumanActivity.Contracts;
using System.ServiceModel.Channels;
using System.ServiceModel;

namespace OpenComposite.Inbox.Forms.ServiceReferences
{
	public class HumanActivityFormServiceClient
		: System.ServiceModel.ClientBase<IHumanActivityFormService>, IHumanActivityFormService
	{
		public HumanActivityFormServiceClient()
			: base()
		{
		}
		public HumanActivityFormServiceClient(string endpointConfigurationName)
			: base(endpointConfigurationName)
		{
		}
		public HumanActivityFormServiceClient(Binding binding, EndpointAddress remoteAddress)
			: base(binding, remoteAddress)
		{
		}
		public HumanActivityFormServiceClient(string endpointConfigurationName, EndpointAddress remoteAddress)
			: base(endpointConfigurationName, remoteAddress)
		{
		}
		public HumanActivityFormServiceClient(string endpointConfigurationName, string remoteAddress)
			: base(endpointConfigurationName, remoteAddress)
		{
		}

		#region IHumanActivityFormService Members

		public bool AbortActivity(int activityId, int userId, string message, string details)
		{
			return base.Channel.AbortActivity(activityId, userId, message, details);
		}

		public bool FaultActivity(int activityId, int userId, string message, string details)
		{
			return base.Channel.FaultActivity(activityId, userId, message, details);
		}
		public bool CancelActivity(int activityId, int userId)
		{
			return base.Channel.CancelActivity(activityId, userId);
		}

		public bool CompleteActivity(int activityId, int userId)
		{
			return base.Channel.CompleteActivity(activityId, userId);
		}
		public bool StopActivity(int activityId, int userId, string message, string details)
		{
			return base.Channel.StopActivity(activityId, userId, message, details);
		}

		public bool DeleteNote(int noteId)
		{
			return base.Channel.DeleteNote(noteId);
		}

		public System.Data.DataSet GetDelegations(int activityId)
		{
			return base.Channel.GetDelegations(activityId);
		}

		public List<NoteItem> GetNotes(int activityId)
		{
			return base.Channel.GetNotes(activityId);
		}

		public System.Data.DataSet GetPossibleOrgs(int activityId)
		{
			return base.Channel.GetPossibleOrgs(activityId);
		}

		public System.Data.DataSet GetPossibleRoles(int activityId)
		{
			return base.Channel.GetPossibleRoles(activityId);
		}

		public System.Data.DataSet GetUserRoles(int activityId)
		{
			return base.Channel.GetUserRoles(activityId);
		}

		public System.Data.DataSet GetUsersForRole(int orgId, int roleId)
		{
			return base.Channel.GetUsersForRole(orgId, roleId);
		}

		public System.Xml.XmlNode LoadData(int activityId, int userId)
		{
			return base.Channel.LoadData(activityId, userId);
		}

		public bool PostPoneActivity(int activityId, int userId, DateTime dtPostPone)
		{
			return base.Channel.PostPoneActivity(activityId, userId, dtPostPone);
		}

		public bool SaveData(int activityId, int userId, System.Xml.XmlNode xnData)
		{
			return base.Channel.SaveData(activityId, userId, xnData);
		}

		public bool SetNote(NoteItem note)
		{
			return base.Channel.SetNote(note);
		}

		public bool StartActivity(int activityId, int userId)
		{
			return base.Channel.StartActivity(activityId, userId);
		}

		public bool UpdateActivityDueDate(int activityId, int userId, DateTime newDueDate, int remindeSecondsBefore)
		{
			return base.Channel.UpdateActivityDueDate(activityId, userId, newDueDate, remindeSecondsBefore);
		}

		public byte[] GetForm()
		{
			return base.Channel.GetForm();
		}

		public FormInfo GetFormInfo()
		{
			return base.Channel.GetFormInfo();
		}

		#endregion
	}
}
